package com.bonshotels.DomainLayer.CtrlDades;

import com.bonshotels.DomainLayer.DomainModel.BonsHotels;
import com.bonshotels.Excepcions.BonsHotelsNoExisteix;

/**
 * Interficie ICtrlBonsHotels.
 * 
 * Aquesta interficie representa el controlador de la classe BonsHotels. Es lleugerament
 * diferent als altres controladors de dades ja que es una classe singleton. Aixo vol dir
 * que en ferla persistent nomes ocupara una fila en la taula BonsHotels de la base de 
 * dades i per tant no te sentit loperacio 'obteTots' o incloure la clau primaria com a 
 * parametre de les altres dues operacions 'obte' o 'existeix'.
 * Aquesta classe es un producte abstracte dins del patro factoria abstracta.
 * @author Jordi Sabater
 */
public interface ICtrlBonsHotels {

	/**
	 * Obte lunica instancia de la classe BonsHotels que pugui haver emmagatzemada en la
	 * base de dades.
	 *
	 * @return Lunica instancia de la classe BonsHotels que pugui haver emmagatzemada en la
	 * base de dades.
	 */
	public BonsHotels obte() throws BonsHotelsNoExisteix;
	
	/**
	 * Indica si tenim o no guardada linstancia de BonsHotels en la base de dades.
	 *
	 * @return Cert, si la instancia de BonsHotels esta en la base de dades. Fals altrament.
	 */
	public boolean existeix();
	
}
